为什么需要 view_image

很多 OpenClaw 任务会产出或接触到图片:截图、生成的封面、下载的报表、别人发来的二维码、报错截图。以往要「看」一张图,得先把图传到某个多模态 API 再取回结果,链路长、还可能把图泄露到第三方。

view_image 是 OpenClaw 内置的图片加载工具:它把图片直接读进当前模型上下文,模型当场就能「看」并回答。它不依赖额外上传步骤,本地路径和受信任 URL 都能用,最多一次 20 张。一句话:让 AI 用眼睛替你把图看明白,而不是让你自己描述图里有什么。

注意:view_image 是「加载到模型上下文」用于推理,不会把它当成要发给用户的附件。要给用户发图,用的是 message 工具的 attachments。

工具长什么样

核心参数就这几个:

| 参数 | 含义 | 默认值/约束 |

|------|------|------|

| path | 单个本地图片路径或受信任 URL | 与 paths 二选一 |

| paths | 多图列表,最多 20 张 | 与 path 二选一 |

| prompt | 针对图片要回答的问题 | 可选;不给也会进上下文 |

| maxImages | 限制加载数量 | 默认 20 |

用法分两种:单图用 path,批量用 paths。maxBytesMb 可限制单图大小(避免超大图撑爆上下文)。

真实可用的调用

1) 看一张本地截图

假设你截了某个后台报错页面,想知道问题出在哪:

{
  "path": "/root/.openclaw/workspace/tmp/error-shot.png",
  "prompt": "这是一段报错截图,请识别错误信息并给出最可能的解决方向"
}

模型会读取这张图,识别图中的文字与布局,直接告诉你错在哪、怎么修——不用你手抄报错文本。

2) 批量看一组生成稿

你用 image_generate 一次出了 4 张封面,想快速挑一张:

{
  "paths": [
    "/root/.openclaw/workspace/out/cover-1.png",
    "/root/.openclaw/workspace/out/cover-2.png",
    "/root/.openclaw/workspace/out/cover-3.png",
    "/root/.openclaw/workspace/out/cover-4.png"
  ],
  "prompt": "这四张封面分别适合什么主题?哪张信息层级最清晰?"
}

3) 看一个 URL 图片(受信任源)

{
  "path": "https://zyker.cn/images/wechat-qr.png",
  "prompt": "这是公众号二维码吗?请确认它是二维码而非普通图片"
}

一个实用组合技:二维码解码

view_image 配合 prompt 能直接「读」二维码内容(当模型本身具备视觉能力时)。这在两个场景很有用:

  • 你收到一张二维码截图,想确认它指向哪里再决定是否扫码——先看图、再决定,避免乱扫。
  • 发布流程自检:文章末尾会带公众号二维码,发布后你想确认线上那张图确实是二维码而不是加载失败的占位图。
{
  "path": "/var/www/zyker.cn-static/images/wechat-qr.png",
  "prompt": "请判断这张图是否为有效的二维码,并尽可能解码其内容类型(如公众号/网址),不要编造具体跳转地址"
}
安全提醒:view_image 只是「看」,不会执行二维码里的任何动作。看到是网址也别直接打开,先确认来源可信。

和其他工具的边界

容易混淆的几个点:

  • view_image vs image_generate:前者是「读图」,后者是「生图」。一个输入图片、一个输出图片,方向相反。
  • view_image vs message attachments:前者把图喂给模型看;后者把图作为消息附件发给用户。想让用户看到图,用 message;想让 AI 分析图,用 view_image。
  • view_image vs browser screenshot:browser 工具截图是「操控网页时顺手截」,view_image 是「拿已有的图来分析」,不依赖浏览器。

踩坑提示

  • 路径要真实存在:本地路径必须是绝对路径且文件可读,path 指向不存在的文件会直接失败,不会静默跳过。
  • URL 需受信任:不是任意外链都能拉,脚本/工具会按允许范围处理;内网或本机静态资源的 URL 最稳。
  • 上下文成本:图片进上下文会占用 token,超大或过多图会拉长推理。用 maxBytesMb 和 maxImages 控量。
  • 它不替代 OCR 工具:如果要做精确的文本批量提取或二维码程序化解码(而非「让模型看一眼」),专门的 OCR / 二维码解析脚本更可靠,本工作区的 qr-image-extraction 技能就是干这个的。

小结

view_image 把「看图」这件事拉回到了 AI 的本职工作里——本地图、URL 图、批量图,直接进上下文就能问答。最适合的场景是:报错截图分析、生成稿挑选、二维码/图片内容确认。记住它的边界:它是给模型看的,不是给用户发的;是读图,不是生图。


扫码关注公众号,获取更多 OpenClaw 实操技巧:

公众号二维码